package com.witherest.server.common.bean;

import java.util.Properties;
import java.util.Set;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


/**
 * 어플리케이션에서 사용할 config 정보가 실제로 저장될 클래스.
 */
public class ConfigProperties {

    /** The Constant logger. */
    private static final Logger logger = LoggerFactory.getLogger(ConfigProperties.class);


    /** 실제 config 정보가 저정될 properties 객체. */
    private Properties properties;

    /**
     * 초기화 한다.
     */
    public void init() throws Exception {
        //환경 변수 설정 log 출력
        if (this.properties != null) {
        	StringBuffer sb = new StringBuffer();
        	Set<Object> set = this.properties.keySet();
        	for (Object obj : set) {
        		sb.append("\r\n").append(obj.toString()).append(" = ").append(this.properties.get(obj).toString());
        	}
        	
        	logger.info("Initialize Config Variables\n {}", sb.toString());
        }
    }

    
    /**
     * config 정보가 저장된 Properties를 변경 한다 .
     * 
     * @param properties the new properties
     */
    public void setProperties(Properties properties) {
        this.properties = properties;
    }
    

    /**
     * key를 기준으로 맵핑된 값을 스트링 형태로 리턴 한다.
     *
     * @param key the key
     * @return the string
     */
    public String getString(String key) {
    	
    	return (String) this.properties.getProperty(key);
    }
}
